package club325.webchat.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import club325.webchat.servlet.log.UserInfoChecker;

public class InvalidateLogInfoFilter implements Filter {
	
	public void init(FilterConfig filterConfig) throws ServletException {
        return;
	}
 	
 	public void doFilter(ServletRequest request, ServletResponse response, 
 			FilterChain chain) throws IOException, ServletException {
 		
 		HttpServletRequest httpReq = (HttpServletRequest)request;
 		HttpServletResponse httpRes = (HttpServletResponse)response;
 		HttpSession session = httpReq.getSession(false);
 		
 		if (session != null) {
 			// ʹsessionʧЧ
 			session.invalidate();
 				
 			// ʹcookieʧЧ
 			Cookie cookie = UserInfoChecker.getUserInfoCookie(httpReq);
 			if (cookie != null) {
 				cookie.setMaxAge(0);
 				httpRes.addCookie(cookie);
 			}
 		}
 		chain.doFilter(httpReq, httpRes);
    }
	
    public void destroy() {
        return;
    }   
}
